{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Vision Transformer AugReg",
      "provenance": [],
      "collapsed_sections": [],
      "toc_visible": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    },
    "accelerator": "GPU",
    "widgets": {
      "application/vnd.jupyter.widget-state+json": {
        "225ebb8a26264dca90b312edb1e73fb6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_7d3d39e266ab4a81983fbf829795f3a7",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_c529bc24ac1943dd8628873d1648c275",
              "IPY_MODEL_d4e82b87ab4a485c9e15f3fd6e77a969"
            ]
          }
        },
        "7d3d39e266ab4a81983fbf829795f3a7": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "c529bc24ac1943dd8628873d1648c275": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_7bdc1b98ea574b8e99fc1bd3bbd2b456",
            "_dom_classes": [],
            "description": "Dl Completed...: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 1,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 1,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_63c6ec28cbad46359e38d1f921b15ffa"
          }
        },
        "d4e82b87ab4a485c9e15f3fd6e77a969": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_d9d5245d91fe42999d8b8693674880f7",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 2/2 [00:47\u0026lt;00:00, 23.84s/ url]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_113db5d71db84749805a9394e89b9e0b"
          }
        },
        "7bdc1b98ea574b8e99fc1bd3bbd2b456": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "63c6ec28cbad46359e38d1f921b15ffa": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "d9d5245d91fe42999d8b8693674880f7": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "113db5d71db84749805a9394e89b9e0b": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "a5a294a2b18f4c078b04b8126be1d84b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_c2ce9e71f07a4be59374466f7a8f33ff",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_608ff4fab08743d8ade2cf99ac8dcd69",
              "IPY_MODEL_107c6e554e9a4a2a913f1684761d3736"
            ]
          }
        },
        "c2ce9e71f07a4be59374466f7a8f33ff": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "608ff4fab08743d8ade2cf99ac8dcd69": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_0e51cd83a88140728b937542605c7e62",
            "_dom_classes": [],
            "description": "Dl Size...: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 1,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 1,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_a6f978d87f114e4ea5fd99ca45c67ba1"
          }
        },
        "107c6e554e9a4a2a913f1684761d3736": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_c9598f8547494601afc86dbdcfc88516",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 773/773 [00:47\u0026lt;00:00, 16.23 MiB/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_c625f7758d544bb6937f265f209cd2c8"
          }
        },
        "0e51cd83a88140728b937542605c7e62": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "a6f978d87f114e4ea5fd99ca45c67ba1": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "c9598f8547494601afc86dbdcfc88516": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "c625f7758d544bb6937f265f209cd2c8": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "132048250a42471785d742ecfa679a7b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_a9d7f91c071345ce9012a39adc3037b5",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_79577fafaa0c46cc85e057d50e1f640f",
              "IPY_MODEL_a0e3deff575141949907cb8647a769be"
            ]
          }
        },
        "a9d7f91c071345ce9012a39adc3037b5": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "79577fafaa0c46cc85e057d50e1f640f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_770dd8577d454c2e82774043376809c1",
            "_dom_classes": [],
            "description": "Extraction completed...: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 1,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 1,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_a73ff8ef581e44d8a8503f4cf25df02f"
          }
        },
        "a0e3deff575141949907cb8647a769be": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_a54f014c7dff445f846b97281652c14f",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 2/2 [00:47\u0026lt;00:00, 23.79s/ file]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_b3f5112e065d4cb884c514a8e4097b38"
          }
        },
        "770dd8577d454c2e82774043376809c1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "a73ff8ef581e44d8a8503f4cf25df02f": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "a54f014c7dff445f846b97281652c14f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "b3f5112e065d4cb884c514a8e4097b38": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "43a06b56ab8742cabec36cd19b51945c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_b0e5b9a1cd5c4b918300b2006daacbdb",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_acc7c1e9e5ec470bb7d22a49fbab75dc",
              "IPY_MODEL_5f70500c82aa4c189b85c4765047305f"
            ]
          }
        },
        "b0e5b9a1cd5c4b918300b2006daacbdb": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "acc7c1e9e5ec470bb7d22a49fbab75dc": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_df9bdd9cfdb74967a5cd83fbcbc3d57e",
            "_dom_classes": [],
            "description": "",
            "_model_name": "FloatProgressModel",
            "bar_style": "info",
            "max": 1,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 1,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_8529b470a86640a1819098d4b809d7c8"
          }
        },
        "5f70500c82aa4c189b85c4765047305f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_8f0adf499e434dc2863bdf6537c08454",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 3680/0 [00:02\u0026lt;00:00, 1339.10 examples/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_e5cafaad07cd45dfb2329b4fa3b18ad4"
          }
        },
        "df9bdd9cfdb74967a5cd83fbcbc3d57e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "8529b470a86640a1819098d4b809d7c8": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "8f0adf499e434dc2863bdf6537c08454": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "e5cafaad07cd45dfb2329b4fa3b18ad4": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "f0da817110a947d2b0b54a43c7879ec6": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_13b28f5de68b428bba06b648c201c5e2",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_5a54036091c84c6582ccf8ea545f7f4c",
              "IPY_MODEL_ee0a499dc13b4a6eb36627a242d6e92a"
            ]
          }
        },
        "13b28f5de68b428bba06b648c201c5e2": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "5a54036091c84c6582ccf8ea545f7f4c": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_febe24498bc0445ab747c120c6abe261",
            "_dom_classes": [],
            "description": " 89%",
            "_model_name": "FloatProgressModel",
            "bar_style": "danger",
            "max": 3680,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 3278,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_56f06ed9e69d40f9b5f39e1550fd2eb1"
          }
        },
        "ee0a499dc13b4a6eb36627a242d6e92a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_7d7deac790b4445cb170356ae88b36e9",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 3278/3680 [00:00\u0026lt;00:00, 4546.66 examples/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_747b920f1510475dad43d49ba782be4d"
          }
        },
        "febe24498bc0445ab747c120c6abe261": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "56f06ed9e69d40f9b5f39e1550fd2eb1": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "7d7deac790b4445cb170356ae88b36e9": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "747b920f1510475dad43d49ba782be4d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "3f995dd7906341eb806cb4cfc52c78eb": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_80048ea0d80c4bf5a9172380e948799d",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_716975e14c8f4b59ade02dc968d58b5e",
              "IPY_MODEL_2acfe7938b3543bf8b9542556f5a23b8"
            ]
          }
        },
        "80048ea0d80c4bf5a9172380e948799d": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "716975e14c8f4b59ade02dc968d58b5e": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_817ad1768fa14aa0b548e259d2162944",
            "_dom_classes": [],
            "description": "",
            "_model_name": "FloatProgressModel",
            "bar_style": "info",
            "max": 1,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 1,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_413ba3075e7d4f54989b8de944aa0759"
          }
        },
        "2acfe7938b3543bf8b9542556f5a23b8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_2a3f564c7c884ff1936d1c6db79ac40b",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 3669/0 [00:02\u0026lt;00:00, 1314.42 examples/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_3b863d829bbc4c1ea618ed5dfb3f0538"
          }
        },
        "817ad1768fa14aa0b548e259d2162944": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "413ba3075e7d4f54989b8de944aa0759": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "2a3f564c7c884ff1936d1c6db79ac40b": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "3b863d829bbc4c1ea618ed5dfb3f0538": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "ee27f121919d4345acd966ad98518b3a": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_fa485b969a6c4893bbb42904fed24eeb",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_7d4bff3e31c4431e91054562d51f80e8",
              "IPY_MODEL_902db9dfbf8543a4956409a22c2efa80"
            ]
          }
        },
        "fa485b969a6c4893bbb42904fed24eeb": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "7d4bff3e31c4431e91054562d51f80e8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_74a0420bbcc64cd0a662f8e27a23cf5f",
            "_dom_classes": [],
            "description": " 96%",
            "_model_name": "FloatProgressModel",
            "bar_style": "danger",
            "max": 3669,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 3515,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_9ff4e5d0a6cd4953a9b04cdd115de440"
          }
        },
        "902db9dfbf8543a4956409a22c2efa80": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_661c19ff44f048eaa8b21ee203319c68",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 3515/3669 [00:01\u0026lt;00:00, 3097.05 examples/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_e9bc91cf5f67406689c7fe90800f729f"
          }
        },
        "74a0420bbcc64cd0a662f8e27a23cf5f": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "9ff4e5d0a6cd4953a9b04cdd115de440": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "661c19ff44f048eaa8b21ee203319c68": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "e9bc91cf5f67406689c7fe90800f729f": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "5ed291cf3157447684e4c732e15713b8": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HBoxModel",
          "state": {
            "_view_name": "HBoxView",
            "_dom_classes": [],
            "_model_name": "HBoxModel",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "box_style": "",
            "layout": "IPY_MODEL_06ea24f8073b4185965fb4b1494e0f19",
            "_model_module": "@jupyter-widgets/controls",
            "children": [
              "IPY_MODEL_6b6f717b6613435ca113a68a1e1f4126",
              "IPY_MODEL_a9deea48888c423cbb5b3e310b106147"
            ]
          }
        },
        "06ea24f8073b4185965fb4b1494e0f19": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "6b6f717b6613435ca113a68a1e1f4126": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "FloatProgressModel",
          "state": {
            "_view_name": "ProgressView",
            "style": "IPY_MODEL_e2388f624f314ae68d3c6a84127ed400",
            "_dom_classes": [],
            "description": "Dl Completed...: 100%",
            "_model_name": "FloatProgressModel",
            "bar_style": "success",
            "max": 5,
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": 5,
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "orientation": "horizontal",
            "min": 0,
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_d51511f4aa504dc2a56c089a167b1c6a"
          }
        },
        "a9deea48888c423cbb5b3e310b106147": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "HTMLModel",
          "state": {
            "_view_name": "HTMLView",
            "style": "IPY_MODEL_05ec97fde7084f5c9cf54b707bf0edf1",
            "_dom_classes": [],
            "description": "",
            "_model_name": "HTMLModel",
            "placeholder": "​",
            "_view_module": "@jupyter-widgets/controls",
            "_model_module_version": "1.5.0",
            "value": " 5/5 [00:02\u0026lt;00:00,  1.73 file/s]",
            "_view_count": null,
            "_view_module_version": "1.5.0",
            "description_tooltip": null,
            "_model_module": "@jupyter-widgets/controls",
            "layout": "IPY_MODEL_61ee19bf89fb4955bda1e759dfd99cb7"
          }
        },
        "e2388f624f314ae68d3c6a84127ed400": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "ProgressStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "ProgressStyleModel",
            "description_width": "initial",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "bar_color": null,
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "d51511f4aa504dc2a56c089a167b1c6a": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        },
        "05ec97fde7084f5c9cf54b707bf0edf1": {
          "model_module": "@jupyter-widgets/controls",
          "model_name": "DescriptionStyleModel",
          "state": {
            "_view_name": "StyleView",
            "_model_name": "DescriptionStyleModel",
            "description_width": "",
            "_view_module": "@jupyter-widgets/base",
            "_model_module_version": "1.5.0",
            "_view_count": null,
            "_view_module_version": "1.2.0",
            "_model_module": "@jupyter-widgets/controls"
          }
        },
        "61ee19bf89fb4955bda1e759dfd99cb7": {
          "model_module": "@jupyter-widgets/base",
          "model_name": "LayoutModel",
          "state": {
            "_view_name": "LayoutView",
            "grid_template_rows": null,
            "right": null,
            "justify_content": null,
            "_view_module": "@jupyter-widgets/base",
            "overflow": null,
            "_model_module_version": "1.2.0",
            "_view_count": null,
            "flex_flow": null,
            "width": null,
            "min_width": null,
            "border": null,
            "align_items": null,
            "bottom": null,
            "_model_module": "@jupyter-widgets/base",
            "top": null,
            "grid_column": null,
            "overflow_y": null,
            "overflow_x": null,
            "grid_auto_flow": null,
            "grid_area": null,
            "grid_template_columns": null,
            "flex": null,
            "_model_name": "LayoutModel",
            "justify_items": null,
            "grid_row": null,
            "max_height": null,
            "align_content": null,
            "visibility": null,
            "align_self": null,
            "height": null,
            "min_height": null,
            "padding": null,
            "grid_auto_rows": null,
            "grid_gap": null,
            "max_width": null,
            "order": null,
            "_view_module_version": "1.2.0",
            "grid_template_areas": null,
            "object_position": null,
            "object_fit": null,
            "grid_auto_columns": null,
            "margin": null,
            "display": null,
            "left": null
          }
        }
      }
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "sXhZm0kpPpH6"
      },
      "source": [
        "##### Copyright 2021 Google LLC."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "cellView": "form",
        "id": "KfmzfvFxPuk7"
      },
      "source": [
        "#@title Licensed under the Apache License, Version 2.0 (the \"License\");\n",
        "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
        "# you may not use this file except in compliance with the License.\n",
        "# You may obtain a copy of the License at\n",
        "#\n",
        "# https://www.apache.org/licenses/LICENSE-2.0\n",
        "#\n",
        "# Unless required by applicable law or agreed to in writing, software\n",
        "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
        "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
        "# See the License for the specific language governing permissions and\n",
        "# limitations under the License."
      ],
      "execution_count": 1,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "iOVCm4CnP1Do"
      },
      "source": [
        "\u003ca href=\"https://colab.research.google.com/github/google-research/vision_transformer/blob/master/vit_jax_augreg.ipynb\" target=\"_parent\"\u003e\u003cimg src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/\u003e\u003c/a\u003e"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "8dkWVp5qbziu"
      },
      "source": [
        "## How to train your ViT? Data, Augmentation, and Regularization in Vision Transformers"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ofwi7yvlx5hj"
      },
      "source": [
        "Model repository published with the paper\n",
        "\n",
        "[**How to train your ViT? Data, Augmentation, and Regularization in Vision\n",
        "Transformers**](https://arxiv.org/abs/2106.10270)\n",
        "\n",
        "This Colab shows how to\n",
        "[find checkpoints](#scrollTo=F4SLGDtFxlsC)\n",
        "in the repository, how to\n",
        "[select and load a model](#scrollTo=wh_SLkQtQ6K4)\n",
        "form the repository and use it for inference\n",
        "([also with PyTorch](#scrollTo=1nMyWmDycpAo)),\n",
        "and how to\n",
        "[fine-tune on a dataset](#scrollTo=iAruT3YOxqB6).\n",
        "\n",
        "For more details, please refer to the repository:\n",
        "\n",
        "https://github.com/google-research/vision_transformer/\n",
        "\n",
        "Note that this Colab directly uses the unmodified code from the repository. If\n",
        "you want to modify the modules and persist your changes, you can do all that\n",
        "using free GPUs and TPUs without leaving the Colab environment - see\n",
        "\n",
        "https://colab.research.google.com/github/google-research/vision_transformer/blob/master/vit_jax.ipynb"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "LPNkX_dfCNog"
      },
      "source": [
        "### Imports"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "_ihyJdwbCVmW",
        "outputId": "998b714c-ebaa-4ece-aaf1-533ef08b4d57"
      },
      "source": [
        "# Fetch vision_transformer repository.\n",
        "![ -d vision_transformer ] || git clone --depth=1 https://github.com/google-research/vision_transformer\n"
      ],
      "execution_count": 2,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Cloning into 'vision_transformer'...\n",
            "remote: Enumerating objects: 37, done.\u001b[K\n",
            "remote: Counting objects: 100% (37/37), done.\u001b[K\n",
            "remote: Compressing objects: 100% (34/34), done.\u001b[K\n",
            "remote: Total 37 (delta 4), reused 15 (delta 1), pack-reused 0\u001b[K\n",
            "Unpacking objects: 100% (37/37), done.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "__7nV7c6C4Zn",
        "outputId": "cd868560-3aae-4887-e735-3a0a9d1ddef2"
      },
      "source": [
        "# Install dependencies.\n",
        "!pip install -qr vision_transformer/vit_jax/requirements.txt"
      ],
      "execution_count": 3,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "\u001b[?25l\r\u001b[K     |█████▋                          | 10 kB 29.7 MB/s eta 0:00:01\r\u001b[K     |███████████▎                    | 20 kB 21.8 MB/s eta 0:00:01\r\u001b[K     |█████████████████               | 30 kB 16.6 MB/s eta 0:00:01\r\u001b[K     |██████████████████████▋         | 40 kB 15.2 MB/s eta 0:00:01\r\u001b[K     |████████████████████████████▎   | 51 kB 7.9 MB/s eta 0:00:01\r\u001b[K     |████████████████████████████████| 57 kB 3.4 MB/s \n",
            "\u001b[K     |████████████████████████████████| 76 kB 5.0 MB/s \n",
            "\u001b[K     |████████████████████████████████| 179 kB 10.1 MB/s \n",
            "\u001b[K     |████████████████████████████████| 88 kB 5.8 MB/s \n",
            "\u001b[K     |████████████████████████████████| 168.3 MB 36 kB/s \n",
            "\u001b[?25h"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "R9VrgMtUC2w-"
      },
      "source": [
        "# Import files from repository.\n",
        "\n",
        "import sys\n",
        "if './vision_transformer' not in sys.path:\n",
        "  sys.path.append('./vision_transformer')\n",
        "\n",
        "%load_ext autoreload\n",
        "%autoreload 2\n",
        "\n",
        "from vit_jax import checkpoint\n",
        "from vit_jax import models\n",
        "from vit_jax import train\n",
        "from vit_jax.configs import augreg as augreg_config\n",
        "from vit_jax.configs import models as models_config"
      ],
      "execution_count": 4,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "MpYDX1idbVxq",
        "outputId": "45a024e9-9b96-4a21-b0de-2d6e4c913f29"
      },
      "source": [
        "# Connect to TPUs if runtime type is of type TPU.\n",
        "\n",
        "import os\n",
        "if 'google.colab' in str(get_ipython()) and 'COLAB_TPU_ADDR' in os.environ:\n",
        "  import jax\n",
        "  import jax.tools.colab_tpu\n",
        "  jax.tools.colab_tpu.setup_tpu()\n",
        "  print('Connected to TPU.')\n",
        "else:\n",
        "  # Otherwise print information about GPU.\n",
        "  !nvidia-smi"
      ],
      "execution_count": 5,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Thu Jul 29 06:07:36 2021       \n",
            "+-----------------------------------------------------------------------------+\n",
            "| NVIDIA-SMI 470.42.01    Driver Version: 460.32.03    CUDA Version: 11.2     |\n",
            "|-------------------------------+----------------------+----------------------+\n",
            "| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |\n",
            "| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |\n",
            "|                               |                      |               MIG M. |\n",
            "|===============================+======================+======================|\n",
            "|   0  Tesla T4            Off  | 00000000:00:04.0 Off |                    0 |\n",
            "| N/A   45C    P8    10W /  70W |      0MiB / 15109MiB |      0%      Default |\n",
            "|                               |                      |                  N/A |\n",
            "+-------------------------------+----------------------+----------------------+\n",
            "                                                                               \n",
            "+-----------------------------------------------------------------------------+\n",
            "| Processes:                                                                  |\n",
            "|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |\n",
            "|        ID   ID                                                   Usage      |\n",
            "|=============================================================================|\n",
            "|  No running processes found                                                 |\n",
            "+-----------------------------------------------------------------------------+\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "6xTeXue8DfwL"
      },
      "source": [
        "# Some more imports used in this Colab.\n",
        "\n",
        "import glob\n",
        "import os\n",
        "import random\n",
        "import shutil\n",
        "import time\n",
        "\n",
        "from absl import logging\n",
        "import pandas as pd\n",
        "import seaborn as sns\n",
        "import tensorflow as tf\n",
        "import tensorflow_datasets as tfds\n",
        "from matplotlib import pyplot as plt\n",
        "\n",
        "pd.options.display.max_colwidth = None\n",
        "logging.set_verbosity(logging.INFO)  # Shows logs during training."
      ],
      "execution_count": 6,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "F4SLGDtFxlsC"
      },
      "source": [
        "### Explore checkpoints\n",
        "\n",
        "This section contains shows how to use the `index.csv` table for model\n",
        "selection.\n",
        "\n",
        "See\n",
        "[`vit_jax.checkpoint.get_augreg_df()`](https://github.com/google-research/vision_transformer/blob/ed1491238f5ff6099cca81087c575a215281ed14/vit_jax/checkpoint.py#L181-L228)\n",
        "for a detailed description of the individual columns"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "yy-cuGxyD6Xw"
      },
      "source": [
        "# Load master table from Cloud.\n",
        "with tf.io.gfile.GFile('gs://vit_models/augreg/index.csv') as f:\n",
        "  df = pd.read_csv(f)"
      ],
      "execution_count": 7,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "j8iAESfDKCQS",
        "outputId": "b92ef316-7df4-464c-9448-25d18dbde999"
      },
      "source": [
        "# This is a pretty large table with lots of columns:\n",
        "print(f'loaded {len(df):,} rows')\n",
        "df.columns"
      ],
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "loaded 51,509 rows\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Index(['name', 'ds', 'epochs', 'lr', 'aug', 'wd', 'do', 'sd', 'best_val',\n",
              "       'final_val', 'final_test', 'adapt_ds', 'adapt_lr', 'adapt_steps',\n",
              "       'adapt_resolution', 'adapt_final_val', 'adapt_final_test', 'params',\n",
              "       'infer_samples_per_sec', 'filename', 'adapt_filename'],\n",
              "      dtype='object')"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 8
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Wi4CwizkKIx_",
        "outputId": "22288fad-82c7-4c10-dcd6-763eb8f39547"
      },
      "source": [
        "# Number of distinct checkpoints\n",
        "len(tf.io.gfile.glob('gs://vit_models/augreg/*.npz'))"
      ],
      "execution_count": 9,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "52268"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 9
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "FOM3HkkbKPdk",
        "outputId": "f54635ac-47f7-44b4-f2c1-6d352b16d12a"
      },
      "source": [
        "# Any column prefixed with \"adapt_\" pertains to the fine-tuned checkpoints.\n",
        "# Any column without that prefix pertains to the pre-trained checkpoints.\n",
        "len(set(df.filename)), len(set(df.adapt_filename))"
      ],
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(759, 51509)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 10
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "h3EyLd3S4XDS",
        "outputId": "6569412c-44da-4f8a-abd8-4c3b1318844b",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "source": [
        "df.name.unique()"
      ],
      "execution_count": 15,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "array(['Ti/16', 'S/32', 'B/16', 'L/16', 'R50+L/32', 'R26+S/32', 'S/16',\n",
              "       'B/32', 'R+Ti/16', 'B/8'], dtype=object)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 15
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 359
        },
        "id": "w38Gjj-SGLVu",
        "outputId": "67776302-9f11-4cb0-8615-7f193b473f7d"
      },
      "source": [
        "# Upstream AugReg parameters (section 3.3):\n",
        "(\n",
        "df.groupby(['ds', 'name', 'wd', 'do', 'sd', 'aug']).filename\n",
        "  .count().unstack().unstack().unstack()\n",
        "  .dropna(1, 'all').fillna(0).astype(int)\n",
        "  .iloc[:7]  # Just show beginning of a long table.\n",
        ")"
      ],
      "execution_count": 17,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "\u003cdiv\u003e\n",
              "\u003cstyle scoped\u003e\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead tr th {\n",
              "        text-align: left;\n",
              "    }\n",
              "\n",
              "    .dataframe thead tr:last-of-type th {\n",
              "        text-align: right;\n",
              "    }\n",
              "\u003c/style\u003e\n",
              "\u003ctable border=\"1\" class=\"dataframe\"\u003e\n",
              "  \u003cthead\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003eaug\u003c/th\u003e\n",
              "      \u003cth colspan=\"2\" halign=\"left\"\u003elight0\u003c/th\u003e\n",
              "      \u003cth colspan=\"2\" halign=\"left\"\u003elight1\u003c/th\u003e\n",
              "      \u003cth colspan=\"2\" halign=\"left\"\u003emedium1\u003c/th\u003e\n",
              "      \u003cth colspan=\"2\" halign=\"left\"\u003emedium2\u003c/th\u003e\n",
              "      \u003cth colspan=\"2\" halign=\"left\"\u003enone\u003c/th\u003e\n",
              "      \u003cth colspan=\"2\" halign=\"left\"\u003estrong1\u003c/th\u003e\n",
              "      \u003cth colspan=\"2\" halign=\"left\"\u003estrong2\u003c/th\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003esd\u003c/th\u003e\n",
              "      \u003cth\u003e0.0\u003c/th\u003e\n",
              "      \u003cth\u003e0.1\u003c/th\u003e\n",
              "      \u003cth\u003e0.0\u003c/th\u003e\n",
              "      \u003cth\u003e0.1\u003c/th\u003e\n",
              "      \u003cth\u003e0.0\u003c/th\u003e\n",
              "      \u003cth\u003e0.1\u003c/th\u003e\n",
              "      \u003cth\u003e0.0\u003c/th\u003e\n",
              "      \u003cth\u003e0.1\u003c/th\u003e\n",
              "      \u003cth\u003e0.0\u003c/th\u003e\n",
              "      \u003cth\u003e0.1\u003c/th\u003e\n",
              "      \u003cth\u003e0.0\u003c/th\u003e\n",
              "      \u003cth\u003e0.1\u003c/th\u003e\n",
              "      \u003cth\u003e0.0\u003c/th\u003e\n",
              "      \u003cth\u003e0.1\u003c/th\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003edo\u003c/th\u003e\n",
              "      \u003cth\u003e0.0\u003c/th\u003e\n",
              "      \u003cth\u003e0.1\u003c/th\u003e\n",
              "      \u003cth\u003e0.0\u003c/th\u003e\n",
              "      \u003cth\u003e0.1\u003c/th\u003e\n",
              "      \u003cth\u003e0.0\u003c/th\u003e\n",
              "      \u003cth\u003e0.1\u003c/th\u003e\n",
              "      \u003cth\u003e0.0\u003c/th\u003e\n",
              "      \u003cth\u003e0.1\u003c/th\u003e\n",
              "      \u003cth\u003e0.0\u003c/th\u003e\n",
              "      \u003cth\u003e0.1\u003c/th\u003e\n",
              "      \u003cth\u003e0.0\u003c/th\u003e\n",
              "      \u003cth\u003e0.1\u003c/th\u003e\n",
              "      \u003cth\u003e0.0\u003c/th\u003e\n",
              "      \u003cth\u003e0.1\u003c/th\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eds\u003c/th\u003e\n",
              "      \u003cth\u003ename\u003c/th\u003e\n",
              "      \u003cth\u003ewd\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "    \u003c/tr\u003e\n",
              "  \u003c/thead\u003e\n",
              "  \u003ctbody\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth rowspan=\"7\" valign=\"top\"\u003ei1k\u003c/th\u003e\n",
              "      \u003cth rowspan=\"2\" valign=\"top\"\u003eB/16\u003c/th\u003e\n",
              "      \u003cth\u003e0.03\u003c/th\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e0.10\u003c/th\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth rowspan=\"2\" valign=\"top\"\u003eB/32\u003c/th\u003e\n",
              "      \u003cth\u003e0.03\u003c/th\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e0.10\u003c/th\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth rowspan=\"2\" valign=\"top\"\u003eL/16\u003c/th\u003e\n",
              "      \u003cth\u003e0.03\u003c/th\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e0.10\u003c/th\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eR+Ti/16\u003c/th\u003e\n",
              "      \u003cth\u003e0.03\u003c/th\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "      \u003ctd\u003e68\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "  \u003c/tbody\u003e\n",
              "\u003c/table\u003e\n",
              "\u003c/div\u003e"
            ],
            "text/plain": [
              "aug              light0     light1     medium1  ... none strong1     strong2    \n",
              "sd                  0.0 0.1    0.0 0.1     0.0  ...  0.1     0.0 0.1     0.0 0.1\n",
              "do                  0.0 0.1    0.0 0.1     0.0  ...  0.1     0.0 0.1     0.0 0.1\n",
              "ds  name    wd                                  ...                             \n",
              "i1k B/16    0.03     68  68     68  68      68  ...   68      68  68      68  68\n",
              "            0.10     68  68     68  68      68  ...   68      68  68      68  68\n",
              "    B/32    0.03     68  68     68  68      68  ...   68      68  68      68  68\n",
              "            0.10     68  68     68  68      68  ...   68      68  68      68  68\n",
              "    L/16    0.03     68  68     68  68      68  ...   68      68  68      68  68\n",
              "            0.10     68  68     68  68      68  ...   68      68  68      68  68\n",
              "    R+Ti/16 0.03     68  68     68  68      68  ...   68      68  68      68  68\n",
              "\n",
              "[7 rows x 14 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 17
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 421
        },
        "id": "PjI5jX36GeFr",
        "outputId": "27c96ac3-d61d-4974-f614-cc86456a673b"
      },
      "source": [
        "# Downstream parameters (table 4)\n",
        "# (Imbalance in 224 vs. 384 is due to recently added B/8 checkpoints)\n",
        "(\n",
        "df.groupby(['adapt_resolution', 'adapt_ds', 'adapt_lr', 'adapt_steps']).filename\n",
        "  .count().astype(str).unstack().unstack()\n",
        "  .dropna(1, 'all').fillna('')\n",
        ")"
      ],
      "execution_count": 18,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "\u003cdiv\u003e\n",
              "\u003cstyle scoped\u003e\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead tr th {\n",
              "        text-align: left;\n",
              "    }\n",
              "\n",
              "    .dataframe thead tr:last-of-type th {\n",
              "        text-align: right;\n",
              "    }\n",
              "\u003c/style\u003e\n",
              "\u003ctable border=\"1\" class=\"dataframe\"\u003e\n",
              "  \u003cthead\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003eadapt_steps\u003c/th\u003e\n",
              "      \u003cth colspan=\"4\" halign=\"left\"\u003e500\u003c/th\u003e\n",
              "      \u003cth colspan=\"4\" halign=\"left\"\u003e2500\u003c/th\u003e\n",
              "      \u003cth colspan=\"4\" halign=\"left\"\u003e10000\u003c/th\u003e\n",
              "      \u003cth colspan=\"2\" halign=\"left\"\u003e20000\u003c/th\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003eadapt_lr\u003c/th\u003e\n",
              "      \u003cth\u003e0.001\u003c/th\u003e\n",
              "      \u003cth\u003e0.003\u003c/th\u003e\n",
              "      \u003cth\u003e0.010\u003c/th\u003e\n",
              "      \u003cth\u003e0.030\u003c/th\u003e\n",
              "      \u003cth\u003e0.001\u003c/th\u003e\n",
              "      \u003cth\u003e0.003\u003c/th\u003e\n",
              "      \u003cth\u003e0.010\u003c/th\u003e\n",
              "      \u003cth\u003e0.030\u003c/th\u003e\n",
              "      \u003cth\u003e0.001\u003c/th\u003e\n",
              "      \u003cth\u003e0.003\u003c/th\u003e\n",
              "      \u003cth\u003e0.010\u003c/th\u003e\n",
              "      \u003cth\u003e0.030\u003c/th\u003e\n",
              "      \u003cth\u003e0.010\u003c/th\u003e\n",
              "      \u003cth\u003e0.030\u003c/th\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eadapt_resolution\u003c/th\u003e\n",
              "      \u003cth\u003eadapt_ds\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "    \u003c/tr\u003e\n",
              "  \u003c/thead\u003e\n",
              "  \u003ctbody\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth rowspan=\"5\" valign=\"top\"\u003e224\u003c/th\u003e\n",
              "      \u003cth\u003ecifar100\u003c/th\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eimagenet2012\u003c/th\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003ekitti\u003c/th\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eoxford_iiit_pet\u003c/th\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eresisc45\u003c/th\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e759\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth rowspan=\"5\" valign=\"top\"\u003e384\u003c/th\u003e\n",
              "      \u003cth\u003ecifar100\u003c/th\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eimagenet2012\u003c/th\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e755\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003ekitti\u003c/th\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eoxford_iiit_pet\u003c/th\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eresisc45\u003c/th\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e756\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "      \u003ctd\u003e\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "  \u003c/tbody\u003e\n",
              "\u003c/table\u003e\n",
              "\u003c/div\u003e"
            ],
            "text/plain": [
              "adapt_steps                      500                ... 10000 20000      \n",
              "adapt_lr                         0.001 0.003 0.010  ... 0.030 0.010 0.030\n",
              "adapt_resolution adapt_ds                           ...                  \n",
              "224              cifar100                           ...   759            \n",
              "                 imagenet2012                       ...         759   759\n",
              "                 kitti             759   759   759  ...                  \n",
              "                 oxford_iiit_pet   759   759   759  ...                  \n",
              "                 resisc45                           ...   759            \n",
              "384              cifar100                           ...   756            \n",
              "                 imagenet2012                       ...         756   755\n",
              "                 kitti             756   756   756  ...                  \n",
              "                 oxford_iiit_pet   756   756   756  ...                  \n",
              "                 resisc45                           ...   756            \n",
              "\n",
              "[10 rows x 14 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 18
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "8Gbt7cdhEHg7",
        "outputId": "1d07cd9e-3b5f-4cdb-c38b-15bb3755843a"
      },
      "source": [
        "# Let's first select the \"best checkpoint\" for every model. We show in the\n",
        "# paper (section 4.5) that one can get a good performance by simply choosing the\n",
        "# best model by final pre-train validation accuracy (\"final-val\" column).\n",
        "# Pre-training with imagenet21k 300 epochs (ds==\"i21k\") gives the best\n",
        "# performance in almost all cases (figure 6, table 5).\n",
        "best_filenames = set(\n",
        "    df.query('ds==\"i21k\"')\n",
        "    .groupby('name')\n",
        "    .apply(lambda df: df.sort_values('final_val').iloc[-1])\n",
        "    .filename\n",
        ")\n",
        "\n",
        "# Select all finetunes from these models.\n",
        "best_df = df.loc[df.filename.apply(lambda filename: filename in best_filenames)]\n",
        "\n",
        "# Note: 9 * 68 == 612\n",
        "len(best_filenames), len(best_df)"
      ],
      "execution_count": 19,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(10, 646)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 19
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "poiez-EcZmtI",
        "outputId": "c6ab958a-3bc8-4d56-df11-fdc6a5f0ea83"
      },
      "source": [
        "best_df.columns"
      ],
      "execution_count": 20,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "Index(['name', 'ds', 'epochs', 'lr', 'aug', 'wd', 'do', 'sd', 'best_val',\n",
              "       'final_val', 'final_test', 'adapt_ds', 'adapt_lr', 'adapt_steps',\n",
              "       'adapt_resolution', 'adapt_final_val', 'adapt_final_test', 'params',\n",
              "       'infer_samples_per_sec', 'filename', 'adapt_filename'],\n",
              "      dtype='object')"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 20
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 730
        },
        "id": "MI_XTt1vX930",
        "outputId": "70747a26-5c5a-47b5-c269-12ef28848301"
      },
      "source": [
        "# Note that this dataframe contains the models from the \"i21k_300\" column of\n",
        "# table 3:\n",
        "best_df.query('adapt_ds==\"imagenet2012\"').groupby('name').apply(\n",
        "    lambda df: df.sort_values('adapt_final_val').iloc[-1]\n",
        ")[[\n",
        "   # Columns from upstream\n",
        "   'name', 'ds', 'filename',\n",
        "   # Columns from downstream\n",
        "   'adapt_resolution', 'infer_samples_per_sec','adapt_ds', 'adapt_final_test', 'adapt_filename',\n",
        "]].sort_values('infer_samples_per_sec')"
      ],
      "execution_count": 21,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "\u003cdiv\u003e\n",
              "\u003cstyle scoped\u003e\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "\u003c/style\u003e\n",
              "\u003ctable border=\"1\" class=\"dataframe\"\u003e\n",
              "  \u003cthead\u003e\n",
              "    \u003ctr style=\"text-align: right;\"\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003ename\u003c/th\u003e\n",
              "      \u003cth\u003eds\u003c/th\u003e\n",
              "      \u003cth\u003efilename\u003c/th\u003e\n",
              "      \u003cth\u003eadapt_resolution\u003c/th\u003e\n",
              "      \u003cth\u003einfer_samples_per_sec\u003c/th\u003e\n",
              "      \u003cth\u003eadapt_ds\u003c/th\u003e\n",
              "      \u003cth\u003eadapt_final_test\u003c/th\u003e\n",
              "      \u003cth\u003eadapt_filename\u003c/th\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003ename\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "    \u003c/tr\u003e\n",
              "  \u003c/thead\u003e\n",
              "  \u003ctbody\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eL/16\u003c/th\u003e\n",
              "      \u003ctd\u003eL/16\u003c/td\u003e\n",
              "      \u003ctd\u003ei21k\u003c/td\u003e\n",
              "      \u003ctd\u003eL_16-i21k-300ep-lr_0.001-aug_strong1-wd_0.1-do_0.0-sd_0.0\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e49.87\u003c/td\u003e\n",
              "      \u003ctd\u003eimagenet2012\u003c/td\u003e\n",
              "      \u003ctd\u003e0.85588\u003c/td\u003e\n",
              "      \u003ctd\u003eL_16-i21k-300ep-lr_0.001-aug_strong1-wd_0.1-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.01-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eB/16\u003c/th\u003e\n",
              "      \u003ctd\u003eB/16\u003c/td\u003e\n",
              "      \u003ctd\u003ei21k\u003c/td\u003e\n",
              "      \u003ctd\u003eB_16-i21k-300ep-lr_0.001-aug_medium1-wd_0.1-do_0.0-sd_0.0\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e137.92\u003c/td\u003e\n",
              "      \u003ctd\u003eimagenet2012\u003c/td\u003e\n",
              "      \u003ctd\u003e0.85486\u003c/td\u003e\n",
              "      \u003ctd\u003eB_16-i21k-300ep-lr_0.001-aug_medium1-wd_0.1-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.03-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eS/16\u003c/th\u003e\n",
              "      \u003ctd\u003eS/16\u003c/td\u003e\n",
              "      \u003ctd\u003ei21k\u003c/td\u003e\n",
              "      \u003ctd\u003eS_16-i21k-300ep-lr_0.001-aug_light1-wd_0.03-do_0.0-sd_0.0\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e300.12\u003c/td\u003e\n",
              "      \u003ctd\u003eimagenet2012\u003c/td\u003e\n",
              "      \u003ctd\u003e0.83728\u003c/td\u003e\n",
              "      \u003ctd\u003eS_16-i21k-300ep-lr_0.001-aug_light1-wd_0.03-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.03-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eR50+L/32\u003c/th\u003e\n",
              "      \u003ctd\u003eR50+L/32\u003c/td\u003e\n",
              "      \u003ctd\u003ei21k\u003c/td\u003e\n",
              "      \u003ctd\u003eR50_L_32-i21k-300ep-lr_0.001-aug_medium1-wd_0.1-do_0.1-sd_0.1\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e326.73\u003c/td\u003e\n",
              "      \u003ctd\u003eimagenet2012\u003c/td\u003e\n",
              "      \u003ctd\u003e0.85992\u003c/td\u003e\n",
              "      \u003ctd\u003eR50_L_32-i21k-300ep-lr_0.001-aug_medium1-wd_0.1-do_0.1-sd_0.1--imagenet2012-steps_20k-lr_0.01-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eR26+S/32\u003c/th\u003e\n",
              "      \u003ctd\u003eR26+S/32\u003c/td\u003e\n",
              "      \u003ctd\u003ei21k\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e560.40\u003c/td\u003e\n",
              "      \u003ctd\u003eimagenet2012\u003c/td\u003e\n",
              "      \u003ctd\u003e0.83846\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.01-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eTi/16\u003c/th\u003e\n",
              "      \u003ctd\u003eTi/16\u003c/td\u003e\n",
              "      \u003ctd\u003ei21k\u003c/td\u003e\n",
              "      \u003ctd\u003eTi_16-i21k-300ep-lr_0.001-aug_none-wd_0.03-do_0.0-sd_0.0\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e609.58\u003c/td\u003e\n",
              "      \u003ctd\u003eimagenet2012\u003c/td\u003e\n",
              "      \u003ctd\u003e0.78220\u003c/td\u003e\n",
              "      \u003ctd\u003eTi_16-i21k-300ep-lr_0.001-aug_none-wd_0.03-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.03-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eB/32\u003c/th\u003e\n",
              "      \u003ctd\u003eB/32\u003c/td\u003e\n",
              "      \u003ctd\u003ei21k\u003c/td\u003e\n",
              "      \u003ctd\u003eB_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e954.94\u003c/td\u003e\n",
              "      \u003ctd\u003eimagenet2012\u003c/td\u003e\n",
              "      \u003ctd\u003e0.83586\u003c/td\u003e\n",
              "      \u003ctd\u003eB_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.01-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eS/32\u003c/th\u003e\n",
              "      \u003ctd\u003eS/32\u003c/td\u003e\n",
              "      \u003ctd\u003ei21k\u003c/td\u003e\n",
              "      \u003ctd\u003eS_32-i21k-300ep-lr_0.001-aug_none-wd_0.1-do_0.0-sd_0.0\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e2153.94\u003c/td\u003e\n",
              "      \u003ctd\u003eimagenet2012\u003c/td\u003e\n",
              "      \u003ctd\u003e0.79584\u003c/td\u003e\n",
              "      \u003ctd\u003eS_32-i21k-300ep-lr_0.001-aug_none-wd_0.1-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.01-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eR+Ti/16\u003c/th\u003e\n",
              "      \u003ctd\u003eR+Ti/16\u003c/td\u003e\n",
              "      \u003ctd\u003ei21k\u003c/td\u003e\n",
              "      \u003ctd\u003eR_Ti_16-i21k-300ep-lr_0.001-aug_none-wd_0.03-do_0.0-sd_0.0\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e2425.77\u003c/td\u003e\n",
              "      \u003ctd\u003eimagenet2012\u003c/td\u003e\n",
              "      \u003ctd\u003e0.75402\u003c/td\u003e\n",
              "      \u003ctd\u003eR_Ti_16-i21k-300ep-lr_0.001-aug_none-wd_0.03-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.03-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003eB/8\u003c/th\u003e\n",
              "      \u003ctd\u003eB/8\u003c/td\u003e\n",
              "      \u003ctd\u003ei21k\u003c/td\u003e\n",
              "      \u003ctd\u003eB_8-i21k-300ep-lr_0.001-aug_medium2-wd_0.1-do_0.0-sd_0.0\u003c/td\u003e\n",
              "      \u003ctd\u003e224\u003c/td\u003e\n",
              "      \u003ctd\u003eNaN\u003c/td\u003e\n",
              "      \u003ctd\u003eimagenet2012\u003c/td\u003e\n",
              "      \u003ctd\u003e0.85578\u003c/td\u003e\n",
              "      \u003ctd\u003eB_8-i21k-300ep-lr_0.001-aug_medium2-wd_0.1-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.03-res_224\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "  \u003c/tbody\u003e\n",
              "\u003c/table\u003e\n",
              "\u003c/div\u003e"
            ],
            "text/plain": [
              "              name  ...                                                                                         adapt_filename\n",
              "name                ...                                                                                                       \n",
              "L/16          L/16  ...      L_16-i21k-300ep-lr_0.001-aug_strong1-wd_0.1-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.01-res_384\n",
              "B/16          B/16  ...      B_16-i21k-300ep-lr_0.001-aug_medium1-wd_0.1-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.03-res_384\n",
              "S/16          S/16  ...      S_16-i21k-300ep-lr_0.001-aug_light1-wd_0.03-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.03-res_384\n",
              "R50+L/32  R50+L/32  ...  R50_L_32-i21k-300ep-lr_0.001-aug_medium1-wd_0.1-do_0.1-sd_0.1--imagenet2012-steps_20k-lr_0.01-res_384\n",
              "R26+S/32  R26+S/32  ...   R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.01-res_384\n",
              "Ti/16        Ti/16  ...       Ti_16-i21k-300ep-lr_0.001-aug_none-wd_0.03-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.03-res_384\n",
              "B/32          B/32  ...       B_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.01-res_384\n",
              "S/32          S/32  ...         S_32-i21k-300ep-lr_0.001-aug_none-wd_0.1-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.01-res_384\n",
              "R+Ti/16    R+Ti/16  ...     R_Ti_16-i21k-300ep-lr_0.001-aug_none-wd_0.03-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.03-res_384\n",
              "B/8            B/8  ...       B_8-i21k-300ep-lr_0.001-aug_medium2-wd_0.1-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.03-res_224\n",
              "\n",
              "[10 rows x 8 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 21
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 388
        },
        "id": "iPYUh4V1EdHg",
        "outputId": "fbe7aa0d-5ddd-46d3-c3bb-c6006a995ec2"
      },
      "source": [
        "# Visualize the 2 (resolution) * 9 (models) * 8 (lr, steps) finetunings for a\n",
        "# single dataset (Pets37).\n",
        "# Note how larger models get better scores up to B/16 @384 even on this tiny\n",
        "# dataset, if pre-trained sufficiently.\n",
        "sns.relplot(\n",
        "    data=best_df.query('adapt_ds==\"oxford_iiit_pet\"'),\n",
        "    x='infer_samples_per_sec',\n",
        "    y='adapt_final_val',\n",
        "    hue='name',\n",
        "    style='adapt_resolution'\n",
        ")\n",
        "plt.gca().set_xscale('log');"
      ],
      "execution_count": 22,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cFigure size 459.375x360 with 1 Axes\u003e"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 817
        },
        "id": "9i7Y9AcpFtlr",
        "outputId": "1a92afd1-ce4f-4e3a-82c9-f0f0a8a11a99"
      },
      "source": [
        "# More details for a single pre-trained checkpoint.\n",
        "best_df.query('name==\"R26+S/32\" and adapt_ds==\"oxford_iiit_pet\"')[[\n",
        "  col for col in best_df.columns if col.startswith('adapt_')\n",
        "]].sort_values('adapt_final_val')"
      ],
      "execution_count": 23,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "\u003cdiv\u003e\n",
              "\u003cstyle scoped\u003e\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "\u003c/style\u003e\n",
              "\u003ctable border=\"1\" class=\"dataframe\"\u003e\n",
              "  \u003cthead\u003e\n",
              "    \u003ctr style=\"text-align: right;\"\u003e\n",
              "      \u003cth\u003e\u003c/th\u003e\n",
              "      \u003cth\u003eadapt_ds\u003c/th\u003e\n",
              "      \u003cth\u003eadapt_lr\u003c/th\u003e\n",
              "      \u003cth\u003eadapt_steps\u003c/th\u003e\n",
              "      \u003cth\u003eadapt_resolution\u003c/th\u003e\n",
              "      \u003cth\u003eadapt_final_val\u003c/th\u003e\n",
              "      \u003cth\u003eadapt_final_test\u003c/th\u003e\n",
              "      \u003cth\u003eadapt_filename\u003c/th\u003e\n",
              "    \u003c/tr\u003e\n",
              "  \u003c/thead\u003e\n",
              "  \u003ctbody\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5730\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.030\u003c/td\u003e\n",
              "      \u003ctd\u003e2500\u003c/td\u003e\n",
              "      \u003ctd\u003e224\u003c/td\u003e\n",
              "      \u003ctd\u003e0.894022\u003c/td\u003e\n",
              "      \u003ctd\u003e0.867539\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.03-res_224\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5762\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.030\u003c/td\u003e\n",
              "      \u003ctd\u003e2500\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e0.915761\u003c/td\u003e\n",
              "      \u003ctd\u003e0.894794\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.03-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5734\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.030\u003c/td\u003e\n",
              "      \u003ctd\u003e500\u003c/td\u003e\n",
              "      \u003ctd\u003e224\u003c/td\u003e\n",
              "      \u003ctd\u003e0.932065\u003c/td\u003e\n",
              "      \u003ctd\u003e0.916326\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.03-res_224\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5731\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.010\u003c/td\u003e\n",
              "      \u003ctd\u003e2500\u003c/td\u003e\n",
              "      \u003ctd\u003e224\u003c/td\u003e\n",
              "      \u003ctd\u003e0.934783\u003c/td\u003e\n",
              "      \u003ctd\u003e0.908694\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.01-res_224\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5732\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.003\u003c/td\u003e\n",
              "      \u003ctd\u003e2500\u003c/td\u003e\n",
              "      \u003ctd\u003e224\u003c/td\u003e\n",
              "      \u003ctd\u003e0.945652\u003c/td\u003e\n",
              "      \u003ctd\u003e0.926410\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.003-res_224\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5763\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.010\u003c/td\u003e\n",
              "      \u003ctd\u003e2500\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e0.945652\u003c/td\u003e\n",
              "      \u003ctd\u003e0.934315\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.01-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5735\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.010\u003c/td\u003e\n",
              "      \u003ctd\u003e500\u003c/td\u003e\n",
              "      \u003ctd\u003e224\u003c/td\u003e\n",
              "      \u003ctd\u003e0.951087\u003c/td\u003e\n",
              "      \u003ctd\u003e0.928046\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.01-res_224\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5766\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.030\u003c/td\u003e\n",
              "      \u003ctd\u003e500\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e0.953804\u003c/td\u003e\n",
              "      \u003ctd\u003e0.941128\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.03-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5733\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.001\u003c/td\u003e\n",
              "      \u003ctd\u003e2500\u003c/td\u003e\n",
              "      \u003ctd\u003e224\u003c/td\u003e\n",
              "      \u003ctd\u003e0.959239\u003c/td\u003e\n",
              "      \u003ctd\u003e0.931044\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.001-res_224\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5737\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.001\u003c/td\u003e\n",
              "      \u003ctd\u003e500\u003c/td\u003e\n",
              "      \u003ctd\u003e224\u003c/td\u003e\n",
              "      \u003ctd\u003e0.959239\u003c/td\u003e\n",
              "      \u003ctd\u003e0.923412\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.001-res_224\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5764\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.003\u003c/td\u003e\n",
              "      \u003ctd\u003e2500\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e0.961957\u003c/td\u003e\n",
              "      \u003ctd\u003e0.941401\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.003-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5765\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.001\u003c/td\u003e\n",
              "      \u003ctd\u003e2500\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e0.961957\u003c/td\u003e\n",
              "      \u003ctd\u003e0.944672\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.001-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5767\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.010\u003c/td\u003e\n",
              "      \u003ctd\u003e500\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e0.961957\u003c/td\u003e\n",
              "      \u003ctd\u003e0.946852\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.01-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5769\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.001\u003c/td\u003e\n",
              "      \u003ctd\u003e500\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e0.964674\u003c/td\u003e\n",
              "      \u003ctd\u003e0.930499\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.001-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5736\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.003\u003c/td\u003e\n",
              "      \u003ctd\u003e500\u003c/td\u003e\n",
              "      \u003ctd\u003e224\u003c/td\u003e\n",
              "      \u003ctd\u003e0.967391\u003c/td\u003e\n",
              "      \u003ctd\u003e0.931589\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.003-res_224\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "    \u003ctr\u003e\n",
              "      \u003cth\u003e5768\u003c/th\u003e\n",
              "      \u003ctd\u003eoxford_iiit_pet\u003c/td\u003e\n",
              "      \u003ctd\u003e0.003\u003c/td\u003e\n",
              "      \u003ctd\u003e500\u003c/td\u003e\n",
              "      \u003ctd\u003e384\u003c/td\u003e\n",
              "      \u003ctd\u003e0.967391\u003c/td\u003e\n",
              "      \u003ctd\u003e0.941946\u003c/td\u003e\n",
              "      \u003ctd\u003eR26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.003-res_384\u003c/td\u003e\n",
              "    \u003c/tr\u003e\n",
              "  \u003c/tbody\u003e\n",
              "\u003c/table\u003e\n",
              "\u003c/div\u003e"
            ],
            "text/plain": [
              "             adapt_ds  ...                                                                                           adapt_filename\n",
              "5730  oxford_iiit_pet  ...   R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.03-res_224\n",
              "5762  oxford_iiit_pet  ...   R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.03-res_384\n",
              "5734  oxford_iiit_pet  ...   R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.03-res_224\n",
              "5731  oxford_iiit_pet  ...   R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.01-res_224\n",
              "5732  oxford_iiit_pet  ...  R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.003-res_224\n",
              "5763  oxford_iiit_pet  ...   R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.01-res_384\n",
              "5735  oxford_iiit_pet  ...   R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.01-res_224\n",
              "5766  oxford_iiit_pet  ...   R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.03-res_384\n",
              "5733  oxford_iiit_pet  ...  R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.001-res_224\n",
              "5737  oxford_iiit_pet  ...  R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.001-res_224\n",
              "5764  oxford_iiit_pet  ...  R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.003-res_384\n",
              "5765  oxford_iiit_pet  ...  R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_2k-lr_0.001-res_384\n",
              "5767  oxford_iiit_pet  ...   R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.01-res_384\n",
              "5769  oxford_iiit_pet  ...  R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.001-res_384\n",
              "5736  oxford_iiit_pet  ...  R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.003-res_224\n",
              "5768  oxford_iiit_pet  ...  R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.003-res_384\n",
              "\n",
              "[16 rows x 7 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 23
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "wh_SLkQtQ6K4"
      },
      "source": [
        "### Load a checkpoint"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "cwWBMJSpQ7EZ",
        "outputId": "c7e94c93-0e17-4209-bedf-c6a394c4a8cf"
      },
      "source": [
        "# Select a value from \"adapt_filename\" above that is a fine-tuned checkpoint.\n",
        "filename = 'R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.003-res_384'\n",
        "\n",
        "tfds_name = filename.split('--')[1].split('-')[0]\n",
        "model_config = models_config.AUGREG_CONFIGS[filename.split('-')[0]]\n",
        "resolution = int(filename.split('_')[-1])\n",
        "path = f'gs://vit_models/augreg/{filename}.npz'\n",
        "\n",
        "print(f'{tf.io.gfile.stat(path).length / 1024 / 1024:.1f} MiB - {path}')"
      ],
      "execution_count": 24,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "137.8 MiB - gs://vit_models/augreg/R26_S_32-i21k-300ep-lr_0.001-aug_light1-wd_0.1-do_0.0-sd_0.0--oxford_iiit_pet-steps_0k-lr_0.003-res_384.npz\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000,
          "referenced_widgets": [
            "225ebb8a26264dca90b312edb1e73fb6",
            "7d3d39e266ab4a81983fbf829795f3a7",
            "c529bc24ac1943dd8628873d1648c275",
            "d4e82b87ab4a485c9e15f3fd6e77a969",
            "7bdc1b98ea574b8e99fc1bd3bbd2b456",
            "63c6ec28cbad46359e38d1f921b15ffa",
            "d9d5245d91fe42999d8b8693674880f7",
            "113db5d71db84749805a9394e89b9e0b",
            "a5a294a2b18f4c078b04b8126be1d84b",
            "c2ce9e71f07a4be59374466f7a8f33ff",
            "608ff4fab08743d8ade2cf99ac8dcd69",
            "107c6e554e9a4a2a913f1684761d3736",
            "0e51cd83a88140728b937542605c7e62",
            "a6f978d87f114e4ea5fd99ca45c67ba1",
            "c9598f8547494601afc86dbdcfc88516",
            "c625f7758d544bb6937f265f209cd2c8",
            "132048250a42471785d742ecfa679a7b",
            "a9d7f91c071345ce9012a39adc3037b5",
            "79577fafaa0c46cc85e057d50e1f640f",
            "a0e3deff575141949907cb8647a769be",
            "770dd8577d454c2e82774043376809c1",
            "a73ff8ef581e44d8a8503f4cf25df02f",
            "a54f014c7dff445f846b97281652c14f",
            "b3f5112e065d4cb884c514a8e4097b38",
            "43a06b56ab8742cabec36cd19b51945c",
            "b0e5b9a1cd5c4b918300b2006daacbdb",
            "acc7c1e9e5ec470bb7d22a49fbab75dc",
            "5f70500c82aa4c189b85c4765047305f",
            "df9bdd9cfdb74967a5cd83fbcbc3d57e",
            "8529b470a86640a1819098d4b809d7c8",
            "8f0adf499e434dc2863bdf6537c08454",
            "e5cafaad07cd45dfb2329b4fa3b18ad4",
            "f0da817110a947d2b0b54a43c7879ec6",
            "13b28f5de68b428bba06b648c201c5e2",
            "5a54036091c84c6582ccf8ea545f7f4c",
            "ee0a499dc13b4a6eb36627a242d6e92a",
            "febe24498bc0445ab747c120c6abe261",
            "56f06ed9e69d40f9b5f39e1550fd2eb1",
            "7d7deac790b4445cb170356ae88b36e9",
            "747b920f1510475dad43d49ba782be4d",
            "3f995dd7906341eb806cb4cfc52c78eb",
            "80048ea0d80c4bf5a9172380e948799d",
            "716975e14c8f4b59ade02dc968d58b5e",
            "2acfe7938b3543bf8b9542556f5a23b8",
            "817ad1768fa14aa0b548e259d2162944",
            "413ba3075e7d4f54989b8de944aa0759",
            "2a3f564c7c884ff1936d1c6db79ac40b",
            "3b863d829bbc4c1ea618ed5dfb3f0538",
            "ee27f121919d4345acd966ad98518b3a",
            "fa485b969a6c4893bbb42904fed24eeb",
            "7d4bff3e31c4431e91054562d51f80e8",
            "902db9dfbf8543a4956409a22c2efa80",
            "74a0420bbcc64cd0a662f8e27a23cf5f",
            "9ff4e5d0a6cd4953a9b04cdd115de440",
            "661c19ff44f048eaa8b21ee203319c68",
            "e9bc91cf5f67406689c7fe90800f729f"
          ]
        },
        "id": "MKW2flB_Sk1u",
        "outputId": "f7be2692-d725-4799-f165-9724cd941799"
      },
      "source": [
        "# Fetch dataset that the checkpoint was finetuned on.\n",
        "# (Note that automatic download does not work with imagenet2012)\n",
        "ds, ds_info = tfds.load(tfds_name, with_info=True)\n",
        "ds_info"
      ],
      "execution_count": 25,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "INFO:absl:Load pre-computed DatasetInfo (eg: splits, num examples,...) from GCS: oxford_iiit_pet/3.2.0\n",
            "INFO:absl:Load dataset info from /tmp/tmpjdu62jcgtfds\n",
            "INFO:absl:Generating dataset oxford_iiit_pet (/root/tensorflow_datasets/oxford_iiit_pet/3.2.0)\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "\u001b[1mDownloading and preparing dataset oxford_iiit_pet/3.2.0 (download: 773.52 MiB, generated: 774.69 MiB, total: 1.51 GiB) to /root/tensorflow_datasets/oxford_iiit_pet/3.2.0...\u001b[0m\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "225ebb8a26264dca90b312edb1e73fb6",
              "version_minor": 0,
              "version_major": 2
            },
            "text/plain": [
              "HBox(children=(FloatProgress(value=1.0, bar_style='info', description='Dl Completed...', max=1.0, style=Progre…"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "a5a294a2b18f4c078b04b8126be1d84b",
              "version_minor": 0,
              "version_major": 2
            },
            "text/plain": [
              "HBox(children=(FloatProgress(value=1.0, bar_style='info', description='Dl Size...', max=1.0, style=ProgressSty…"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "display_data",
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "132048250a42471785d742ecfa679a7b",
              "version_minor": 0,
              "version_major": 2
            },
            "text/plain": [
              "HBox(children=(FloatProgress(value=1.0, bar_style='info', description='Extraction completed...', max=1.0, styl…"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "INFO:absl:Downloading http://www.robots.ox.ac.uk/~vgg/data/pets/data/annotations.tar.gz into /root/tensorflow_datasets/downloads/robots.ox.ac.uk_vgg_pets_annotationsL8B_bMDM0_iUhyDddl6Yu-1togBm2g5ZH8E6r80wOQo.tar.gz.tmp.4604a2666aa54d328f47b684e6b8c5c7...\n",
            "INFO:absl:Downloading http://www.robots.ox.ac.uk/~vgg/data/pets/data/images.tar.gz into /root/tensorflow_datasets/downloads/robots.ox.ac.uk_vgg_pets_imageswMR1o1DWRq_DHWToagdXedb7P88RHpceK3WqG77VVwU.tar.gz.tmp.87f3d2b8bfb14abcadb60abb95bc060d...\n",
            "INFO:absl:Generating split train\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "\n",
            "\n",
            "\n",
            "\n",
            "\n",
            "\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "43a06b56ab8742cabec36cd19b51945c",
              "version_minor": 0,
              "version_major": 2
            },
            "text/plain": [
              "HBox(children=(FloatProgress(value=1.0, bar_style='info', max=1.0), HTML(value='')))"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "\rShuffling and writing examples to /root/tensorflow_datasets/oxford_iiit_pet/3.2.0.incompleteADR8WE/oxford_iiit_pet-train.tfrecord\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "f0da817110a947d2b0b54a43c7879ec6",
              "version_minor": 0,
              "version_major": 2
            },
            "text/plain": [
              "HBox(children=(FloatProgress(value=0.0, max=3680.0), HTML(value='')))"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "INFO:absl:Done writing /root/tensorflow_datasets/oxford_iiit_pet/3.2.0.incompleteADR8WE/oxford_iiit_pet-train.tfrecord. Shard lengths: [920, 920, 920, 920]\n",
            "INFO:absl:Generating split test\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "\r"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "3f995dd7906341eb806cb4cfc52c78eb",
              "version_minor": 0,
              "version_major": 2
            },
            "text/plain": [
              "HBox(children=(FloatProgress(value=1.0, bar_style='info', max=1.0), HTML(value='')))"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "\rShuffling and writing examples to /root/tensorflow_datasets/oxford_iiit_pet/3.2.0.incompleteADR8WE/oxford_iiit_pet-test.tfrecord\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "ee27f121919d4345acd966ad98518b3a",
              "version_minor": 0,
              "version_major": 2
            },
            "text/plain": [
              "HBox(children=(FloatProgress(value=0.0, max=3669.0), HTML(value='')))"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "INFO:absl:Done writing /root/tensorflow_datasets/oxford_iiit_pet/3.2.0.incompleteADR8WE/oxford_iiit_pet-test.tfrecord. Shard lengths: [917, 917, 918, 917]\n",
            "INFO:absl:Skipping computing stats for mode ComputeStatsMode.SKIP.\n",
            "INFO:absl:Constructing tf.data.Dataset for split None, from /root/tensorflow_datasets/oxford_iiit_pet/3.2.0\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "\u001b[1mDataset oxford_iiit_pet downloaded and prepared to /root/tensorflow_datasets/oxford_iiit_pet/3.2.0. Subsequent calls will reuse this data.\u001b[0m\n",
            "\r"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "tfds.core.DatasetInfo(\n",
              "    name='oxford_iiit_pet',\n",
              "    version=3.2.0,\n",
              "    description='The Oxford-IIIT pet dataset is a 37 category pet image dataset with roughly 200\n",
              "images for each class. The images have large variations in scale, pose and\n",
              "lighting. All images have an associated ground truth annotation of breed.',\n",
              "    homepage='http://www.robots.ox.ac.uk/~vgg/data/pets/',\n",
              "    features=FeaturesDict({\n",
              "        'file_name': Text(shape=(), dtype=tf.string),\n",
              "        'image': Image(shape=(None, None, 3), dtype=tf.uint8),\n",
              "        'label': ClassLabel(shape=(), dtype=tf.int64, num_classes=37),\n",
              "        'segmentation_mask': Image(shape=(None, None, 1), dtype=tf.uint8),\n",
              "        'species': ClassLabel(shape=(), dtype=tf.int64, num_classes=2),\n",
              "    }),\n",
              "    total_num_examples=7349,\n",
              "    splits={\n",
              "        'test': 3669,\n",
              "        'train': 3680,\n",
              "    },\n",
              "    supervised_keys=('image', 'label'),\n",
              "    citation=\"\"\"@InProceedings{parkhi12a,\n",
              "      author       = \"Parkhi, O. M. and Vedaldi, A. and Zisserman, A. and Jawahar, C.~V.\",\n",
              "      title        = \"Cats and Dogs\",\n",
              "      booktitle    = \"IEEE Conference on Computer Vision and Pattern Recognition\",\n",
              "      year         = \"2012\",\n",
              "    }\"\"\",\n",
              "    redistribution_info=,\n",
              ")"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 25
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "KtmV4tRCSX8n"
      },
      "source": [
        "# Get model instance - no weights are initialized yet.\n",
        "model = models.VisionTransformer(\n",
        "    num_classes=ds_info.features['label'].num_classes, **model_config)"
      ],
      "execution_count": 26,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "GU6Tw1KvScBA"
      },
      "source": [
        "# Load a checkpoint from cloud - for large checkpoints this can take a while...\n",
        "params = checkpoint.load(path)"
      ],
      "execution_count": 27,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Js-QtAqeUJCo"
      },
      "source": [
        "# Get a single example from dataset for inference.\n",
        "d = next(iter(ds['test']))"
      ],
      "execution_count": 28,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 269
        },
        "id": "xpovSMYFUHAj",
        "outputId": "b0a70f79-2ddb-40f7-9e48-16783404aeec"
      },
      "source": [
        "def pp(img, sz):\n",
        "  \"\"\"Simple image preprocessing.\"\"\"\n",
        "  img = tf.cast(img, float) / 255.0\n",
        "  img = tf.image.resize(img, [sz, sz])\n",
        "  return img\n",
        "\n",
        "plt.imshow(pp(d['image'], resolution));"
      ],
      "execution_count": 29,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cFigure size 432x288 with 1 Axes\u003e"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "dBgTdceOT9vz",
        "outputId": "6bc9ec9b-8f30-4f8e-a820-08928f30ecaa",
        "colab": {
          "base_uri": "https://localhost:8080/"
        }
      },
      "source": [
        "# Inference on batch with single example.\n",
        "logits, = model.apply({'params': params}, pp(d['image'], resolution).numpy()[None], train=False)"
      ],
      "execution_count": 30,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "INFO:absl:Starting the local TPU driver.\n",
            "INFO:absl:Unable to initialize backend 'tpu_driver': Not found: Unable to find driver in registry given worker: local://\n",
            "INFO:absl:Unable to initialize backend 'tpu': Invalid argument: TpuPlatform is not available.\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 382
        },
        "id": "QIQM--g4VwY9",
        "outputId": "57cb35e7-c9e3-45f2-8ead-38a21f6646d4"
      },
      "source": [
        "# Plot logits (you can use tf.nn.softmax() to show probabilities instead).\n",
        "plt.figure(figsize=(10, 4))\n",
        "plt.bar(list(map(ds_info.features['label'].int2str, range(len(logits)))), logits)\n",
        "plt.xticks(rotation=90);"
      ],
      "execution_count": 31,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cFigure size 720x288 with 1 Axes\u003e"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "1nMyWmDycpAo"
      },
      "source": [
        "#### Using `timm`\n",
        "\n",
        "If you know PyTorch, you're probably already familiar with `timm`.\n",
        "\n",
        "If not yet - it's your lucky day! Please check out their docs here:\n",
        "\n",
        "https://rwightman.github.io/pytorch-image-models/"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "yV6Sr1TdXUMp",
        "outputId": "5afc4a13-6c7e-4a01-cef0-27edf08a2a59"
      },
      "source": [
        "# Checkpoints can also be loaded directly into timm...\n",
        "!pip install timm\n",
        "import timm\n",
        "import torch"
      ],
      "execution_count": 32,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Collecting timm\n",
            "  Downloading timm-0.4.12-py3-none-any.whl (376 kB)\n",
            "\u001b[?25l\r\u001b[K     |▉                               | 10 kB 28.4 MB/s eta 0:00:01\r\u001b[K     |█▊                              | 20 kB 32.1 MB/s eta 0:00:01\r\u001b[K     |██▋                             | 30 kB 14.0 MB/s eta 0:00:01\r\u001b[K     |███▌                            | 40 kB 10.7 MB/s eta 0:00:01\r\u001b[K     |████▍                           | 51 kB 7.5 MB/s eta 0:00:01\r\u001b[K     |█████▏                          | 61 kB 7.9 MB/s eta 0:00:01\r\u001b[K     |██████                          | 71 kB 7.4 MB/s eta 0:00:01\r\u001b[K     |███████                         | 81 kB 8.3 MB/s eta 0:00:01\r\u001b[K     |███████▉                        | 92 kB 6.4 MB/s eta 0:00:01\r\u001b[K     |████████▊                       | 102 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |█████████▋                      | 112 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |██████████▍                     | 122 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |███████████▎                    | 133 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |████████████▏                   | 143 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |█████████████                   | 153 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |██████████████                  | 163 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |██████████████▊                 | 174 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |███████████████▋                | 184 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |████████████████▌               | 194 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |█████████████████▍              | 204 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |██████████████████▎             | 215 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |███████████████████▏            | 225 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |████████████████████            | 235 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |████████████████████▉           | 245 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |█████████████████████▊          | 256 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |██████████████████████▋         | 266 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |███████████████████████▌        | 276 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |████████████████████████▍       | 286 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |█████████████████████████▏      | 296 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |██████████████████████████      | 307 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |███████████████████████████     | 317 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |███████████████████████████▉    | 327 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |████████████████████████████▊   | 337 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |█████████████████████████████▌  | 348 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |██████████████████████████████▍ | 358 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |███████████████████████████████▎| 368 kB 6.9 MB/s eta 0:00:01\r\u001b[K     |████████████████████████████████| 376 kB 6.9 MB/s \n",
            "\u001b[?25hRequirement already satisfied: torch\u003e=1.4 in /usr/local/lib/python3.7/dist-packages (from timm) (1.9.0+cu102)\n",
            "Requirement already satisfied: torchvision in /usr/local/lib/python3.7/dist-packages (from timm) (0.10.0+cu102)\n",
            "Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from torch\u003e=1.4-\u003etimm) (3.7.4.3)\n",
            "Requirement already satisfied: numpy in /usr/local/lib/python3.7/dist-packages (from torchvision-\u003etimm) (1.19.5)\n",
            "Requirement already satisfied: pillow\u003e=5.3.0 in /usr/local/lib/python3.7/dist-packages (from torchvision-\u003etimm) (7.1.2)\n",
            "Installing collected packages: timm\n",
            "Successfully installed timm-0.4.12\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "gwV4IvfYXioI",
        "outputId": "ca3651e1-b892-4218-d59e-bca10faaa7b5"
      },
      "source": [
        "# For available model names, see here:\n",
        "# https://github.com/rwightman/pytorch-image-models/blob/master/timm/models/vision_transformer.py\n",
        "# https://github.com/rwightman/pytorch-image-models/blob/master/timm/models/vision_transformer_hybrid.py\n",
        "timm_model = timm.create_model(\n",
        "    'vit_small_r26_s32_384', num_classes=ds_info.features['label'].num_classes)\n",
        "\n",
        "# Non-default checkpoints need to be loaded from local files.\n",
        "if not tf.io.gfile.exists(f'{filename}.npz'):\n",
        "  tf.io.gfile.copy(f'gs://vit_models/augreg/{filename}.npz', f'{filename}.npz')\n",
        "timm.models.load_checkpoint(timm_model, f'{filename}.npz')"
      ],
      "execution_count": 33,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.7/dist-packages/torch/nn/functional.py:718: UserWarning: Named tensors and all their associated APIs are an experimental feature and subject to change. Please do not use them for anything important until they are released as stable. (Triggered internally at  /pytorch/c10/core/TensorImpl.h:1156.)\n",
            "  return torch.max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode)\n"
          ],
          "name": "stderr"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "gd6NVWNLYOSI"
      },
      "source": [
        "def pp_torch(img, sz):\n",
        "  \"\"\"Simple image preprocessing for PyTorch.\"\"\"\n",
        "  img = pp(img, sz)\n",
        "  img = img.numpy().transpose([2, 0, 1])  # PyTorch expects NCHW format.\n",
        "  return torch.tensor(img[None])\n",
        "\n",
        "with torch.no_grad():\n",
        "  logits, = timm_model(pp_torch(d['image'], resolution)).detach().numpy()"
      ],
      "execution_count": 34,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 382
        },
        "id": "vA-mEJofeHxd",
        "outputId": "883ea202-af9c-4be9-b80d-ff207b7208e8"
      },
      "source": [
        "# Same results as above (since we loaded the same checkpoint).\n",
        "plt.figure(figsize=(10, 4))\n",
        "plt.bar(list(map(ds_info.features['label'].int2str, range(len(logits)))), logits)\n",
        "plt.xticks(rotation=90);"
      ],
      "execution_count": 35,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cFigure size 720x288 with 1 Axes\u003e"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "iAruT3YOxqB6"
      },
      "source": [
        "### Fine-tune\n",
        "\n",
        "You want to be connected to a TPU or GPU runtime for fine-tuning.\n",
        "\n",
        "Note that here we're just calling into the code. For more details see the\n",
        "annotated Colab\n",
        "\n",
        "https://colab.research.google.com/github/google-research/vision_transformer/blob/linen/vit_jax.ipynb\n",
        "\n",
        "Also note that Colab GPUs and TPUs are not very powerful. To run this code on\n",
        "more powerful machines, see:\n",
        "\n",
        "https://github.com/google-research/vision_transformer/#running-on-cloud\n",
        "\n",
        "In particular, note that due to the Colab \"TPU Node\" setup, transfering data to\n",
        "the TPUs is realtively slow (for example the smallest `R+Ti/16` model trains\n",
        "faster on a single GPU than on 8 TPUs...)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "TiHEFXlBbZiV"
      },
      "source": [
        "#### TensorBoard"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Fu6uaCGDXLmr"
      },
      "source": [
        "# Launch tensorboard before training - maybe click \"reload\" during training.\n",
        "%load_ext tensorboard\n",
        "%tensorboard --logdir=./workdirs"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "KYU9EdV2bWV7"
      },
      "source": [
        "#### From tfds"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        },
        "id": "Z1Ee2-GzZ9sl",
        "outputId": "bb6c3056-1e2d-4f76-f490-29daa38c30c8"
      },
      "source": [
        "# Create a new temporary workdir.\n",
        "workdir = f'./workdirs/{int(time.time())}'\n",
        "workdir"
      ],
      "execution_count": 37,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            },
            "text/plain": [
              "'./workdirs/1627539136'"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 37
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "SB73ZFGCxsXo"
      },
      "source": [
        "# Get config for specified model.\n",
        "\n",
        "# Note that we can specify simply the model name (in which case the recommended\n",
        "# checkpoint for that model is taken), or it can be specified by its full\n",
        "# name.\n",
        "config = augreg_config.get_config('R_Ti_16')\n",
        "\n",
        "# A very small tfds dataset that only has a \"train\" split. We use this single\n",
        "# split both for training \u0026 evaluation by splitting it further into 90%/10%.\n",
        "config.dataset = 'tf_flowers'\n",
        "config.pp.train = 'train[:90%]'\n",
        "config.pp.test = 'train[90%:]'\n",
        "# tf_flowers only has 3670 images - so the 10% evaluation split will contain\n",
        "# 360 images. We specify batch_eval=120 so we evaluate on all but 7 of those\n",
        "# images (remainder is dropped).\n",
        "config.batch_eval = 120\n",
        "\n",
        "# Some more parameters that you will often want to set manually.\n",
        "# For example for VTAB we used steps={500, 2500} and lr={.001, .003, .01, .03}\n",
        "config.base_lr = 0.01\n",
        "config.shuffle_buffer = 1000\n",
        "config.total_steps = 100\n",
        "config.warmup_steps = 10\n",
        "config.accum_steps = 0  # Not needed with R+Ti/16 model.\n",
        "config.pp['crop'] = 224"
      ],
      "execution_count": 38,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ldKZFMnmYjY_",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000,
          "referenced_widgets": [
            "5ed291cf3157447684e4c732e15713b8",
            "06ea24f8073b4185965fb4b1494e0f19",
            "6b6f717b6613435ca113a68a1e1f4126",
            "a9deea48888c423cbb5b3e310b106147",
            "e2388f624f314ae68d3c6a84127ed400",
            "d51511f4aa504dc2a56c089a167b1c6a",
            "05ec97fde7084f5c9cf54b707bf0edf1",
            "61ee19bf89fb4955bda1e759dfd99cb7"
          ]
        },
        "outputId": "d6fe8e95-83c1-4c55-e96f-1a0b57b7d84a"
      },
      "source": [
        "# Call main training loop. See repository and above Colab for details.\n",
        "state = train.train_and_evaluate(config, workdir)"
      ],
      "execution_count": 39,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "INFO:absl:Load pre-computed DatasetInfo (eg: splits, num examples,...) from GCS: tf_flowers/3.0.1\n",
            "INFO:absl:Load dataset info from /tmp/tmprx4ogu7ltfds\n",
            "INFO:absl:Reading dataset from tfds \"tf_flowers\"\n",
            "INFO:absl:Load pre-computed DatasetInfo (eg: splits, num examples,...) from GCS: tf_flowers/3.0.1\n",
            "INFO:absl:Load dataset info from /tmp/tmpd_sq954qtfds\n",
            "INFO:absl:Generating dataset tf_flowers (/root/tensorflow_datasets/tf_flowers/3.0.1)\n",
            "WARNING:absl:Dataset tf_flowers is hosted on GCS. It will automatically be downloaded to your\n",
            "local data directory. If you'd instead prefer to read directly from our public\n",
            "GCS bucket (recommended if you're running on GCP), you can instead pass\n",
            "`try_gcs=True` to `tfds.load` or set `data_dir=gs://tfds-data/datasets`.\n",
            "\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "\u001b[1mDownloading and preparing dataset tf_flowers/3.0.1 (download: 218.21 MiB, generated: 221.83 MiB, total: 440.05 MiB) to /root/tensorflow_datasets/tf_flowers/3.0.1...\u001b[0m\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "application/vnd.jupyter.widget-view+json": {
              "model_id": "5ed291cf3157447684e4c732e15713b8",
              "version_minor": 0,
              "version_major": 2
            },
            "text/plain": [
              "HBox(children=(FloatProgress(value=0.0, description='Dl Completed...', max=5.0, style=ProgressStyle(descriptio…"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "INFO:absl:Load dataset info from /root/tensorflow_datasets/tf_flowers/3.0.1.incompleteXSDU19\n",
            "INFO:absl:Constructing tf.data.Dataset for split train[:90%], from /root/tensorflow_datasets/tf_flowers/3.0.1\n",
            "INFO:absl:Load dataset info from /root/tensorflow_datasets/tf_flowers/3.0.1\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "\n",
            "\n",
            "\u001b[1mDataset tf_flowers downloaded and prepared to /root/tensorflow_datasets/tf_flowers/3.0.1. Subsequent calls will reuse this data.\u001b[0m\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "stream",
          "text": [
            "INFO:absl:Load dataset info from /root/tensorflow_datasets/tf_flowers/3.0.1\n",
            "INFO:absl:Reusing dataset tf_flowers (/root/tensorflow_datasets/tf_flowers/3.0.1)\n",
            "INFO:absl:Constructing tf.data.Dataset for split train[90%:], from /root/tensorflow_datasets/tf_flowers/3.0.1\n",
            "INFO:absl:Load dataset info from /root/tensorflow_datasets/tf_flowers/3.0.1\n",
            "INFO:absl:\u003cPrefetchDataset shapes: {image: (1, 512, 224, 224, 3), label: (1, 512, 5)}, types: {image: tf.float32, label: tf.float32}\u003e\n",
            "INFO:absl:\u003cPrefetchDataset shapes: {image: (1, 120, 224, 224, 3), label: (1, 120, 5)}, types: {image: tf.float32, label: tf.float32}\u003e\n",
            "INFO:absl:Selected fillename=\"R_Ti_16-i21k-300ep-lr_0.001-aug_none-wd_0.03-do_0.0-sd_0.0\" for \"R_Ti_16\" with final_val=0.390\n",
            "INFO:absl:Found no checkpoint file at ./workdirs/1627539136\n",
            "INFO:absl:Will start/continue training at initial_step=1\n",
            "/usr/local/lib/python3.7/dist-packages/jax/lib/xla_bridge.py:387: UserWarning: jax.host_count has been renamed to jax.process_count. This alias will eventually be removed; please update your code.\n",
            "  \"jax.host_count has been renamed to jax.process_count. This alias \"\n",
            "/usr/local/lib/python3.7/dist-packages/jax/lib/xla_bridge.py:374: UserWarning: jax.host_id has been renamed to jax.process_index. This alias will eventually be removed; please update your code.\n",
            "  \"jax.host_id has been renamed to jax.process_index. This alias \"\n",
            "INFO:absl:Hyperparameters: {'accum_steps': 0, 'base_lr': 0.01, 'batch': 512, 'batch_eval': 120, 'checkpoint_every': 1000, 'dataset': 'tf_flowers', 'decay_type': 'cosine', 'eval_every': 100, 'grad_norm_clip': 1.0, 'model': {'classifier': 'token', 'hidden_size': 192, 'name': 'R+ViT-Ti_16', 'patches': {'size': (8, 8)}, 'representation_size': None, 'resnet': {'num_layers': (), 'width_factor': 1}, 'transformer': {'attention_dropout_rate': 0.0, 'dropout_rate': 0.0, 'mlp_dim': 768, 'num_heads': 3, 'num_layers': 12}}, 'model_or_filename': 'R_Ti_16', 'optim_dtype': 'bfloat16', 'pp': {'crop': 224, 'resize': 448, 'test': 'train[90%:]', 'train': 'train[:90%]'}, 'prefetch': 2, 'pretrained_dir': 'gs://vit_models/augreg', 'progress_every': 10, 'shuffle_buffer': 1000, 'tfds_data_dir': None, 'tfds_manual_dir': None, 'total_steps': 100, 'trainer': 'train', 'warmup_steps': 10}\n",
            "INFO:absl:Starting training loop; initial compile can take a while...\n",
            "/usr/local/lib/python3.7/dist-packages/jax/_src/profiler.py:167: UserWarning: StepTraceContext has been renamed to StepTraceAnnotation. This alias will eventually be removed; please update your code.\n",
            "  \"StepTraceContext has been renamed to StepTraceAnnotation. This alias \"\n",
            "INFO:absl:First step took 40.1 seconds.\n",
            "INFO:absl:[10] img_sec_core_train=497.200154, train_loss=0.522652\n",
            "INFO:absl:Step: 10/100 10.0%, img/sec/core: 497.2, ETA: 0.02h\n",
            "INFO:absl:Created artifact [10] Profile of type ArtifactType.URL and value None.\n",
            "INFO:absl:[20] img_sec_core_train=348.195610, train_loss=0.200892\n",
            "INFO:absl:Step: 20/100 20.0%, img/sec/core: 348.2, ETA: 0.03h\n",
            "INFO:absl:[30] img_sec_core_train=408.326154, train_loss=0.223066\n",
            "INFO:absl:Step: 30/100 30.0%, img/sec/core: 408.3, ETA: 0.02h\n",
            "INFO:absl:[40] img_sec_core_train=410.988480, train_loss=0.210076\n",
            "INFO:absl:Step: 40/100 40.0%, img/sec/core: 411.0, ETA: 0.02h\n",
            "INFO:absl:Setting work unit notes: 0.8 steps/s, 49.0% @49, ETA: 1m\n",
            "INFO:absl:[49] steps_per_sec=0.797867\n",
            "INFO:absl:[50] img_sec_core_train=410.102459, train_loss=0.255746\n",
            "INFO:absl:Step: 50/100 50.0%, img/sec/core: 410.1, ETA: 0.02h\n",
            "INFO:absl:[60] img_sec_core_train=389.702776, train_loss=0.172555\n",
            "INFO:absl:Step: 60/100 60.0%, img/sec/core: 389.7, ETA: 0.01h\n",
            "INFO:absl:[70] img_sec_core_train=383.566635, train_loss=0.175968\n",
            "INFO:absl:Step: 70/100 70.0%, img/sec/core: 383.6, ETA: 0.01h\n",
            "INFO:absl:[80] img_sec_core_train=407.022965, train_loss=0.147852\n",
            "INFO:absl:Step: 80/100 80.0%, img/sec/core: 407.0, ETA: 0.01h\n",
            "INFO:absl:[90] img_sec_core_train=406.781729, train_loss=0.137439\n",
            "INFO:absl:Step: 90/100 90.0%, img/sec/core: 406.8, ETA: 0.00h\n",
            "INFO:absl:Setting work unit notes: 0.8 steps/s, 96.0% @96, ETA: 0m\n",
            "INFO:absl:[96] steps_per_sec=0.776280\n",
            "INFO:absl:Setting work unit notes: 0.8 steps/s, 100.0% @100, ETA: 0m\n",
            "INFO:absl:[100] steps_per_sec=0.805336\n",
            "INFO:absl:[100] img_sec_core_train=407.049767, train_loss=0.143796\n",
            "INFO:absl:Step: 100/100 100.0%, img/sec/core: 407.0, ETA: 0.00h\n",
            "INFO:absl:Step: 100 Learning rate: 0.0000000, Test accuracy: 0.95000, img/sec/core: 41.9\n",
            "INFO:absl:[100] accuracy_test=0.9500000476837158, img_sec_core_test=41.864635, lr=0.000000\n",
            "INFO:absl:Saving checkpoint at step: 100\n",
            "INFO:absl:Saved checkpoint at workdirs/1627539136/checkpoint_100\n",
            "INFO:absl:Stored checkpoint at step 100 to \"workdirs/1627539136/checkpoint_100\"\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "workdirs/1627539136/checkpoint_100\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "JOtCfWFOfVFq"
      },
      "source": [
        "#### From JPG files\n",
        "\n",
        "The codebase supports training directly form JPG files on the local filesystem\n",
        "instead of `tfds` datasets. Note that the throughput is somewhat reduced, but\n",
        "that only is noticeable for very small models.\n",
        "\n",
        "The main advantage of `tfds` datasets is that they are versioned and available\n",
        "globally."
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "5VxlDlnxKAa3"
      },
      "source": [
        "base = '.'  # Store data on VM (ephemeral)."
      ],
      "execution_count": 40,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "yr6JY8OBmKkj"
      },
      "source": [
        "# Uncomment below lines if you want to download \u0026 persist files in your Google\n",
        "# Drive instead. Note that Colab VMs are reset (i.e. files are deleted) after\n",
        "# some time of inactivity. Storing data to Google Drive guarantees that it is\n",
        "# still available next time you connect from a new VM.\n",
        "\n",
        "# Note that this is significantly slower than reading from the VMs locally\n",
        "# attached file system!\n",
        "\n",
        "# from google.colab import drive\n",
        "# drive.mount('/gdrive')\n",
        "# base = '/gdrive/My Drive/vision_transformer_images'"
      ],
      "execution_count": 41,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "VZJdKYv3mLqd",
        "outputId": "552207d7-cfbe-4a1f-e140-bbbbfd0da31c"
      },
      "source": [
        "# Download some dataset \u0026 unzip.\n",
        "! rm -rf $base/flower_photos; mkdir -p $base\n",
        "! (cd $base \u0026\u0026 curl https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz | tar xz)"
      ],
      "execution_count": 42,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n",
            "                                 Dload  Upload   Total   Spent    Left  Speed\n",
            "100  218M  100  218M    0     0  81.8M      0  0:00:02  0:00:02 --:--:-- 81.8M\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "0QRnYHLzmPxL",
        "outputId": "5d464050-9e3f-4ba0-eed6-ce49cfe01276"
      },
      "source": [
        "# Since the default file format of above \"tf_flowers\" dataset is\n",
        "# flower_photos/{class_name}/{filename}.jpg\n",
        "# we first need to split it into a \"train\" (90%) and a \"test\" (10%) set:\n",
        "# flower_photos/train/{class_name}/{filename}.jpg\n",
        "# flower_photos/test/{class_name}/{filename}.jpg\n",
        "\n",
        "def split(base_dir, test_ratio=0.1):\n",
        "  paths = glob.glob(f'{base_dir}/*/*.jpg')\n",
        "  random.shuffle(paths)\n",
        "  counts = dict(test=0, train=0)\n",
        "  for i, path in enumerate(paths):\n",
        "    split = 'test' if i \u003c test_ratio * len(paths) else 'train'\n",
        "    *_, class_name, basename = path.split('/')\n",
        "    dst = f'{base_dir}/{split}/{class_name}/{basename}'\n",
        "    if not os.path.isdir(os.path.dirname(dst)):\n",
        "      os.makedirs(os.path.dirname(dst))\n",
        "    shutil.move(path, dst)\n",
        "    counts[split] += 1\n",
        "  print(f'Moved {counts[\"train\"]:,} train and {counts[\"test\"]:,} test images.')\n",
        "\n",
        "split(f'{base}/flower_photos')"
      ],
      "execution_count": 43,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Moved 3,303 train and 367 test images.\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 35
        },
        "id": "1DKwlCXTKJjJ",
        "outputId": "83f39dfb-e764-4bf8-e486-95d26db6e371"
      },
      "source": [
        "# Create a new temporary workdir.\n",
        "workdir = f'./workdirs/{int(time.time())}'\n",
        "workdir"
      ],
      "execution_count": 44,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "application/vnd.google.colaboratory.intrinsic+json": {
              "type": "string"
            },
            "text/plain": [
              "'./workdirs/1627539429'"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 44
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "N2ojstZeKJjK"
      },
      "source": [
        "# Read data from directory containing files.\n",
        "# (See cell above for more config settings)\n",
        "config.dataset = f'{base}/flower_photos'"
      ],
      "execution_count": 45,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "L8hljjZlKJjK",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "b9880743-3984-475e-a3f1-7c60b6f904e4"
      },
      "source": [
        "# And fine-tune on images provided\n",
        "opt = train.train_and_evaluate(config, workdir)"
      ],
      "execution_count": 46,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "INFO:absl:Reading dataset from directories \"./flower_photos/train\" and \"./flower_photos/test\"\n",
            "INFO:absl:\u003cPrefetchDataset shapes: {image: (1, 512, 224, 224, 3), label: (1, 512, 5)}, types: {image: tf.float32, label: tf.float32}\u003e\n",
            "INFO:absl:\u003cPrefetchDataset shapes: {image: (1, 120, 224, 224, 3), label: (1, 120, 5)}, types: {image: tf.float32, label: tf.float32}\u003e\n",
            "INFO:absl:Selected fillename=\"R_Ti_16-i21k-300ep-lr_0.001-aug_none-wd_0.03-do_0.0-sd_0.0\" for \"R_Ti_16\" with final_val=0.390\n",
            "INFO:absl:Found no checkpoint file at ./workdirs/1627539429\n",
            "INFO:absl:Will start/continue training at initial_step=1\n",
            "/usr/local/lib/python3.7/dist-packages/jax/lib/xla_bridge.py:387: UserWarning: jax.host_count has been renamed to jax.process_count. This alias will eventually be removed; please update your code.\n",
            "  \"jax.host_count has been renamed to jax.process_count. This alias \"\n",
            "/usr/local/lib/python3.7/dist-packages/jax/lib/xla_bridge.py:374: UserWarning: jax.host_id has been renamed to jax.process_index. This alias will eventually be removed; please update your code.\n",
            "  \"jax.host_id has been renamed to jax.process_index. This alias \"\n",
            "INFO:absl:Hyperparameters: {'accum_steps': 0, 'base_lr': 0.01, 'batch': 512, 'batch_eval': 120, 'checkpoint_every': 1000, 'dataset': './flower_photos', 'decay_type': 'cosine', 'eval_every': 100, 'grad_norm_clip': 1.0, 'model': {'classifier': 'token', 'hidden_size': 192, 'name': 'R+ViT-Ti_16', 'patches': {'size': (8, 8)}, 'representation_size': None, 'resnet': {'num_layers': (), 'width_factor': 1}, 'transformer': {'attention_dropout_rate': 0.0, 'dropout_rate': 0.0, 'mlp_dim': 768, 'num_heads': 3, 'num_layers': 12}}, 'model_or_filename': 'R_Ti_16', 'optim_dtype': 'bfloat16', 'pp': {'crop': 224, 'resize': 448, 'test': 'train[90%:]', 'train': 'train[:90%]'}, 'prefetch': 2, 'pretrained_dir': 'gs://vit_models/augreg', 'progress_every': 10, 'shuffle_buffer': 1000, 'tfds_data_dir': None, 'tfds_manual_dir': None, 'total_steps': 100, 'trainer': 'train', 'warmup_steps': 10}\n",
            "INFO:absl:Starting training loop; initial compile can take a while...\n",
            "/usr/local/lib/python3.7/dist-packages/jax/_src/profiler.py:167: UserWarning: StepTraceContext has been renamed to StepTraceAnnotation. This alias will eventually be removed; please update your code.\n",
            "  \"StepTraceContext has been renamed to StepTraceAnnotation. This alias \"\n",
            "INFO:absl:First step took 26.7 seconds.\n",
            "INFO:absl:[10] img_sec_core_train=504.439041, train_loss=0.517574\n",
            "INFO:absl:Step: 10/100 10.0%, img/sec/core: 504.4, ETA: 0.02h\n",
            "INFO:absl:Created artifact [10] Profile of type ArtifactType.URL and value None.\n",
            "INFO:absl:[20] img_sec_core_train=364.853150, train_loss=0.232779\n",
            "INFO:absl:Step: 20/100 20.0%, img/sec/core: 364.9, ETA: 0.03h\n",
            "INFO:absl:[30] img_sec_core_train=358.281401, train_loss=0.251437\n",
            "INFO:absl:Step: 30/100 30.0%, img/sec/core: 358.3, ETA: 0.02h\n",
            "INFO:absl:[40] img_sec_core_train=359.572849, train_loss=0.196024\n",
            "INFO:absl:Step: 40/100 40.0%, img/sec/core: 359.6, ETA: 0.02h\n",
            "INFO:absl:Setting work unit notes: 0.8 steps/s, 47.0% @47, ETA: 1m\n",
            "INFO:absl:[47] steps_per_sec=0.753239\n",
            "INFO:absl:[50] img_sec_core_train=381.908006, train_loss=0.194640\n",
            "INFO:absl:Step: 50/100 50.0%, img/sec/core: 381.9, ETA: 0.02h\n",
            "INFO:absl:[60] img_sec_core_train=380.494434, train_loss=0.135086\n",
            "INFO:absl:Step: 60/100 60.0%, img/sec/core: 380.5, ETA: 0.01h\n",
            "INFO:absl:[70] img_sec_core_train=376.330891, train_loss=0.181564\n",
            "INFO:absl:Step: 70/100 70.0%, img/sec/core: 376.3, ETA: 0.01h\n",
            "INFO:absl:[80] img_sec_core_train=354.874495, train_loss=0.100307\n",
            "INFO:absl:Step: 80/100 80.0%, img/sec/core: 354.9, ETA: 0.01h\n",
            "INFO:absl:[90] img_sec_core_train=367.600830, train_loss=0.128104\n",
            "INFO:absl:Step: 90/100 90.0%, img/sec/core: 367.6, ETA: 0.00h\n",
            "INFO:absl:Setting work unit notes: 0.7 steps/s, 91.0% @91, ETA: 0m\n",
            "INFO:absl:[91] steps_per_sec=0.721651\n",
            "INFO:absl:Setting work unit notes: 0.7 steps/s, 100.0% @100, ETA: 0m\n",
            "INFO:absl:[100] steps_per_sec=0.745245\n",
            "INFO:absl:[100] img_sec_core_train=376.285043, train_loss=0.141850\n",
            "INFO:absl:Step: 100/100 100.0%, img/sec/core: 376.3, ETA: 0.00h\n",
            "INFO:absl:Step: 100 Learning rate: 0.0000000, Test accuracy: 0.95278, img/sec/core: 49.7\n",
            "INFO:absl:[100] accuracy_test=0.9527778625488281, img_sec_core_test=49.667636, lr=0.000000\n",
            "INFO:absl:Saving checkpoint at step: 100\n",
            "INFO:absl:Saved checkpoint at workdirs/1627539429/checkpoint_100\n",
            "INFO:absl:Stored checkpoint at step 100 to \"workdirs/1627539429/checkpoint_100\"\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "workdirs/1627539429/checkpoint_100\n"
          ],
          "name": "stdout"
        }
      ]
    }
  ]
}
